// app.js

/*
 * 文档参考 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/app.html
 * API参考 https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html
 * 在 app.js 中调用 App 方法注册小程序实例
 * App(Object object) --- 注册小程序。接受一个 Object 参数，其指定小程序的生命周期回调等。
 * App() 必须在 app.js 中调用，必须调用且只能调用一次。不然会出现无法预期的后果。
 * 
 * 整个小程序只有一个 App 实例，是全部页面共享的。开发者可以通过 getApp 方法获取到全局唯一的 App 实例，获取App上的数据或调用开发者注册在 App 上的函数。
 * const appInstance = getApp(); // 获取App实例
 * console.log(appInstance.globalData); // 打印App实例的全局变量对象globalData的内容
 */
App({
  onLaunch: function () {
    /*
     * onLaunch 生命周期回调——监听小程序初始化
     * onLaunch(Object object) --- 小程序初始化完成时触发，全局只触发一次。参数也可以使用 wx.getLaunchOptionsSync 获取。
     */
  },
  globalData: {
    // globalData 全局变量对象
    isIphoneX: false
  },
  onShow: function () {
    /*
     * onShow 生命周期回调——监听小程序启动或切前台
     * onShow(Object object) --- 小程序启动，或从后台进入前台显示时触发。也可以使用 wx.onAppShow 绑定监听。
     */
    let that = this;
    /*
     * API参考 https://developers.weixin.qq.com/miniprogram/dev/api/base/system/system-info/wx.getSystemInfo.html
     * wx.getSystemInfo(Object object) --- 获取系统信息
     * 
     * API参考 https://developers.weixin.qq.com/miniprogram/dev/api/base/system/system-info/wx.getSystemInfoSync.html
     * Object wx.getSystemInfoSync() --- wx.getSystemInfo 的同步版本
     * 
     * 获取机型信息, 以便适配iPhoneX
     */
    wx.getSystemInfo({
      // success(Object res) --- 接口调用成功的回调函数
      success: (res) => {
        // res.model --- 设备型号字符串信息
        let model = res.model;
        that.globalData.isIphoneX = model.search('iPhone X') != -1;
      }
    });
  }
})
